Micron Document
🎖️GitЯра🎖️

Node / meshtastic / Meshtastic-Android / files / core / ui / src / commonMain / kotlin / org / meshtastic / core / ui / component / MaterialBatteryInfo.kt

Displaying Raw • Download

core/ui/src/commonMain/kotlin/org/meshtastic/core/ui/component/MaterialBatteryInfo.kt 520fa717a938fd84682403b41f57d9f7e1ef49ef (520fa717) Text, 6.21 KB

T8b949e/*
* Copyright (c) 2025-2026 Meshtastic LLC
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
Tff7b72package T7ee787org.meshtastic.core.ui.component

Tff7b72import T7ee787androidx.compose.foundation.layout.Arrangement
Tff7b72import T7ee787androidx.compose.foundation.layout.Row
Tff7b72import T7ee787androidx.compose.foundation.layout.size
Tff7b72import T7ee787androidx.compose.material3.Icon
Tff7b72import T7ee787androidx.compose.material3.MaterialTheme
Tff7b72import T7ee787androidx.compose.material3.Text
Tff7b72import T7ee787androidx.compose.runtime.Composable
Tff7b72import T7ee787androidx.compose.ui.Alignment
Tff7b72import T7ee787androidx.compose.ui.Modifier
Tff7b72import T7ee787androidx.compose.ui.draw.drawBehind
Tff7b72import T7ee787androidx.compose.ui.draw.rotate
Tff7b72import T7ee787androidx.compose.ui.geometry.Offset
Tff7b72import T7ee787androidx.compose.ui.geometry.Size
Tff7b72import T7ee787androidx.compose.ui.graphics.Color
Tff7b72import T7ee787androidx.compose.ui.text.font.FontWeight
Tff7b72import T7ee787androidx.compose.ui.tooling.preview.PreviewLightDark
Tff7b72import T7ee787androidx.compose.ui.tooling.preview.PreviewParameter
Tff7b72import T7ee787androidx.compose.ui.tooling.preview.PreviewParameterProvider
Tff7b72import T7ee787androidx.compose.ui.unit.dp
Tff7b72import T7ee787androidx.compose.ui.unit.sp
Tff7b72import T7ee787org.jetbrains.compose.resources.stringResource
Tff7b72import T7ee787org.meshtastic.core.common.util.formatString
Tff7b72import T7ee787org.meshtastic.core.resources.Res
Tff7b72import T7ee787org.meshtastic.core.resources.unknown
Tff7b72import T7ee787org.meshtastic.core.ui.icon.BatteryEmpty
Tff7b72import T7ee787org.meshtastic.core.ui.icon.BatteryUnknown
Tff7b72import T7ee787org.meshtastic.core.ui.icon.MeshtasticIcons
Tff7b72import T7ee787org.meshtastic.core.ui.icon.PowerSupply
Tff7b72import T7ee787org.meshtastic.core.ui.theme.AppTheme
Tff7b72import T7ee787org.meshtastic.core.ui.theme.StatusColors.StatusGreen
Tff7b72import T7ee787org.meshtastic.core.ui.theme.StatusColors.StatusOrange
Tff7b72import T7ee787org.meshtastic.core.ui.theme.StatusColors.StatusRed

Tff7b72private Tff7b72const Tff7b72val Te6edf3FORMAT Tff7b72= Ta5d6ff"Ta5d6ff%d%%Ta5d6ff"
Tff7b72private Tff7b72const Tff7b72val Te6edf3SIZE_ICON Tff7b72= T79c0ff1T79c0ff6

Tf0883e@SuppressTb4b4b4(Ta5d6ff"Ta5d6ffMagicNumberTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffLongMethodTa5d6ff"Tb4b4b4)
Tf0883e@Composable
Tff7b72fun Td2a8ffMaterialBatteryInfoTb4b4b4(
Te6edf3modifierTb4b4b4: Te6edf3Modifier Tff7b72= Te6edf3ModifierTb4b4b4,
Te6edf3levelTb4b4b4: Tffa657Int?Tb4b4b4,
Te6edf3voltageTb4b4b4: Tffa657Float? Tff7b72= Tff7b72nullTb4b4b4,
Te6edf3contentColorTb4b4b4: Te6edf3Color Tff7b72= Te6edf3MaterialThemeTb4b4b4.Te6edf3colorSchemeTb4b4b4.Te6edf3onSurfaceTb4b4b4,
Tb4b4b4) Tb4b4b4{
Tff7b72val Te6edf3levelString Tff7b72= Te6edf3formatStringTb4b4b4(Te6edf3FORMATTb4b4b4, Te6edf3levelTb4b4b4)

Te6edf3RowTb4b4b4(
Te6edf3modifier Tff7b72= Te6edf3modifierTb4b4b4,
Te6edf3verticalAlignment Tff7b72= Te6edf3AlignmentTb4b4b4.Te6edf3CenterVerticallyTb4b4b4,
Te6edf3horizontalArrangement Tff7b72= Te6edf3ArrangementTb4b4b4.Te6edf3spacedByTb4b4b4(T79c0ff1.Te6edf3dpTb4b4b4)Tb4b4b4,
Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3level Tff7b72=Tff7b72= Tff7b72null Tff7b72|Tff7b72| Te6edf3level Tff7b72< T79c0ff0Tb4b4b4) Tb4b4b4{
Te6edf3IconTb4b4b4(
Te6edf3modifier Tff7b72= Te6edf3ModifierTb4b4b4.Te6edf3sizeTb4b4b4(Te6edf3SIZE_ICONTb4b4b4.Te6edf3dpTb4b4b4)Tb4b4b4,
Te6edf3imageVector Tff7b72= Te6edf3MeshtasticIconsTb4b4b4.Te6edf3BatteryUnknownTb4b4b4,
Te6edf3tint Tff7b72= Te6edf3contentColorTb4b4b4.Te6edf3copyTb4b4b4(Te6edf3alpha Tff7b72= T79c0ff0.65fTb4b4b4)Tb4b4b4,
Te6edf3contentDescription Tff7b72= Te6edf3stringResourceTb4b4b4(Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3unknownTb4b4b4)Tb4b4b4,
Tb4b4b4)
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3level Tff7b72> T79c0ff1T79c0ff0T79c0ff0Tb4b4b4) Tb4b4b4{
Te6edf3IconTb4b4b4(
Te6edf3modifier Tff7b72= Te6edf3ModifierTb4b4b4.Te6edf3sizeTb4b4b4(Te6edf3SIZE_ICONTb4b4b4.Te6edf3dpTb4b4b4)Tb4b4b4.Te6edf3rotateTb4b4b4(T79c0ff9T79c0ff0fTb4b4b4)Tb4b4b4,
Te6edf3imageVector Tff7b72= Te6edf3MeshtasticIconsTb4b4b4.Te6edf3PowerSupplyTb4b4b4,
Te6edf3tint Tff7b72= Te6edf3contentColorTb4b4b4.Te6edf3copyTb4b4b4(Te6edf3alpha Tff7b72= T79c0ff0.65fTb4b4b4)Tb4b4b4,
Te6edf3contentDescription Tff7b72= Te6edf3levelStringTb4b4b4,
Tb4b4b4)

Te6edf3TextTb4b4b4(
Te6edf3text Tff7b72= Ta5d6ff"Ta5d6ffPWRTa5d6ff"Tb4b4b4,
Te6edf3color Tff7b72= Te6edf3contentColorTb4b4b4.Te6edf3copyTb4b4b4(Te6edf3alpha Tff7b72= T79c0ff0.95fTb4b4b4)Tb4b4b4,
Te6edf3style Tff7b72= Te6edf3MaterialThemeTb4b4b4.Te6edf3typographyTb4b4b4.Te6edf3labelMediumTb4b4b4.Te6edf3copyTb4b4b4(Te6edf3fontWeight Tff7b72= Te6edf3FontWeightTb4b4b4.Te6edf3SemiBoldTb4b4b4, Te6edf3fontSize Tff7b72= T79c0ff1T79c0ff2.Te6edf3spTb4b4b4)Tb4b4b4,
Tb4b4b4)
Tb4b4b4} Tff7b72else Tb4b4b4{
T8b949e// Map battery percentage to color
Tff7b72val Te6edf3fillColor Tff7b72=
Tff7b72when Tb4b4b4(Te6edf3levelTb4b4b4) Tb4b4b4{
Tff7b72in T79c0ff0.Tb4b4b4.T79c0ff1T79c0ff9 Tff7b72-Tff7b72> Te6edf3MaterialThemeTb4b4b4.Te6edf3colorSchemeTb4b4b4.Te6edf3StatusRed
Tff7b72in T79c0ff2T79c0ff0.Tb4b4b4.T79c0ff3T79c0ff9 Tff7b72-Tff7b72> Te6edf3MaterialThemeTb4b4b4.Te6edf3colorSchemeTb4b4b4.Te6edf3StatusOrange
Tff7b72else Tff7b72-Tff7b72> Te6edf3MaterialThemeTb4b4b4.Te6edf3colorSchemeTb4b4b4.Te6edf3StatusGreen
Tb4b4b4}

Te6edf3IconTb4b4b4(
Te6edf3modifier Tff7b72=
Te6edf3ModifierTb4b4b4.Te6edf3sizeTb4b4b4(Te6edf3SIZE_ICONTb4b4b4.Te6edf3dpTb4b4b4)Tb4b4b4.Te6edf3drawBehind Tb4b4b4{
Tff7b72val Te6edf3insetVertical Tff7b72= Te6edf3sizeTb4b4b4.Te6edf3height Tff7b72* Tb4b4b4.T79c0ff2T79c0ff8f
Tff7b72val Te6edf3insetLeft Tff7b72= Te6edf3sizeTb4b4b4.Te6edf3width Tff7b72* Tb4b4b4.T79c0ff1T79c0ff1f
Tff7b72val Te6edf3insetRight Tff7b72= Te6edf3sizeTb4b4b4.Te6edf3width Tff7b72* Tb4b4b4.T79c0ff2T79c0ff2f

Tff7b72val Te6edf3availableWidth Tff7b72= Te6edf3sizeTb4b4b4.Te6edf3width Tff7b72- Tb4b4b4(Te6edf3insetLeft Tff7b72+ Te6edf3insetRightTb4b4b4)
Tff7b72val Te6edf3availableHeight Tff7b72= Te6edf3sizeTb4b4b4.Te6edf3height Tff7b72- Tb4b4b4(Te6edf3insetVertical Tff7b72* T79c0ff2Tb4b4b4)

T8b949e// Fill (grow from left to right)
Tff7b72val Te6edf3fillWidth Tff7b72= Te6edf3availableWidth Tff7b72* Tb4b4b4(Te6edf3level Tff7b72/ T79c0ff1T79c0ff0T79c0ff0fTb4b4b4)

Te6edf3drawRectTb4b4b4(
Te6edf3color Tff7b72= Te6edf3fillColorTb4b4b4,
Te6edf3topLeft Tff7b72= Te6edf3OffsetTb4b4b4(Te6edf3insetLeftTb4b4b4, Te6edf3insetVerticalTb4b4b4)Tb4b4b4,
Te6edf3size Tff7b72= Te6edf3SizeTb4b4b4(Te6edf3fillWidthTb4b4b4, Te6edf3availableHeightTb4b4b4)Tb4b4b4,
Tb4b4b4)
Tb4b4b4}Tb4b4b4,
Te6edf3imageVector Tff7b72= Te6edf3MeshtasticIconsTb4b4b4.Te6edf3BatteryEmptyTb4b4b4,
Te6edf3tint Tff7b72= Te6edf3contentColorTb4b4b4.Te6edf3copyTb4b4b4(Te6edf3alpha Tff7b72= T79c0ff0.65fTb4b4b4)Tb4b4b4,
Te6edf3contentDescription Tff7b72= Te6edf3levelStringTb4b4b4,
Tb4b4b4)

Te6edf3TextTb4b4b4(
Te6edf3text Tff7b72= Te6edf3levelStringTb4b4b4,
Te6edf3color Tff7b72= Te6edf3contentColorTb4b4b4.Te6edf3copyTb4b4b4(Te6edf3alpha Tff7b72= T79c0ff0.95fTb4b4b4)Tb4b4b4,
Te6edf3style Tff7b72= Te6edf3MaterialThemeTb4b4b4.Te6edf3typographyTb4b4b4.Te6edf3labelMediumTb4b4b4.Te6edf3copyTb4b4b4(Te6edf3fontWeight Tff7b72= Te6edf3FontWeightTb4b4b4.Te6edf3SemiBoldTb4b4b4, Te6edf3fontSize Tff7b72= T79c0ff1T79c0ff2.Te6edf3spTb4b4b4)Tb4b4b4,
Tb4b4b4)
Tb4b4b4}
Te6edf3voltage
Tff7b72?.Te6edf3takeIf Tb4b4b4{ Tffa657it Tff7b72> T79c0ff0 Tb4b4b4}
Tff7b72?.Te6edf3let Tb4b4b4{
Te6edf3TextTb4b4b4(
Te6edf3text Tff7b72= Te6edf3formatStringTb4b4b4(Ta5d6ff"Ta5d6ff%.2fVTa5d6ff"Tb4b4b4, Tffa657itTb4b4b4)Tb4b4b4,
Te6edf3color Tff7b72= Te6edf3contentColorTb4b4b4.Te6edf3copyTb4b4b4(Te6edf3alpha Tff7b72= T79c0ff0.8fTb4b4b4)Tb4b4b4,
Te6edf3style Tff7b72= Te6edf3MaterialThemeTb4b4b4.Te6edf3typographyTb4b4b4.Te6edf3labelMediumTb4b4b4.Te6edf3copyTb4b4b4(Te6edf3fontSize Tff7b72= T79c0ff1T79c0ff2.Te6edf3spTb4b4b4)Tb4b4b4,
Tb4b4b4)
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}

Tff7b72class T56d364BatteryInfoPreviewParameterProvider Tb4b4b4: Te6edf3PreviewParameterProviderTff7b72<Te6edf3PairTff7b72<Tffa657Int?Tb4b4b4, Tffa657Float?Tff7b72>Tff7b72> Tb4b4b4{
Tff7b72override Tff7b72val Te6edf3valuesTb4b4b4: Te6edf3SequenceTff7b72<Te6edf3PairTff7b72<Tffa657Int?Tb4b4b4, Tffa657Float?Tff7b72>Tff7b72>
Tff7b72getTb4b4b4(Tb4b4b4) Tff7b72=
Te6edf3sequenceOfTb4b4b4(
T79c0ff8T79c0ff5 Te6edf3to T79c0ff3.7FTb4b4b4,
T79c0ff2 Te6edf3to T79c0ff3.7FTb4b4b4,
T79c0ff1T79c0ff2 Te6edf3to T79c0ff3.7FTb4b4b4,
T79c0ff2T79c0ff8 Te6edf3to T79c0ff3.7FTb4b4b4,
T79c0ff5T79c0ff0 Te6edf3to T79c0ff3.7FTb4b4b4,
T79c0ff1T79c0ff0T79c0ff1 Te6edf3to T79c0ff4.9FTb4b4b4,
Tff7b72null Te6edf3to T79c0ff4.5FTb4b4b4,
Tff7b72null Te6edf3to Tff7b72nullTb4b4b4,
Tb4b4b4)
Tb4b4b4}

Tf0883e@PreviewLightDark
Tf0883e@Composable
Tff7b72fun Td2a8ffMaterialBatteryInfoPreviewTb4b4b4(Tf0883e@PreviewParameterTb4b4b4(Te6edf3BatteryInfoPreviewParameterProviderTff7b72::Te6edf3classTb4b4b4) Te6edf3infoTb4b4b4: Te6edf3PairTff7b72<Tffa657Int?Tb4b4b4, Tffa657Float?Tff7b72>Tb4b4b4) Tb4b4b4{
Te6edf3AppTheme Tb4b4b4{ Te6edf3MaterialBatteryInfoTb4b4b4(Te6edf3level Tff7b72= Te6edf3infoTb4b4b4.Te6edf3firstTb4b4b4, Te6edf3voltage Tff7b72= Te6edf3infoTb4b4b4.Te6edf3secondTb4b4b4) Tb4b4b4}
Tb4b4b4}

Served by rngit 1.5.0 - Generated in 0.06s